package my.springboot3.dto;

import lombok.*;

/**
 * 响应类
 */
@Data
@NoArgsConstructor //无参构造函数自动生成
@AllArgsConstructor //全参构造函数自动生成
public class Respond<T> {

    /**
     * 响应码
     */
    private int code;
    /**
     * 响应信息
     */
    private String message;
    /**
     * 响应数据
     */
    private T data;

    /**
     * 成功,传回携带数据
     */
    public static <T> Respond<T> success(T data) {

        // 数据的非空判断处理,空数据进行异常校验
        return new Respond<>(0, "success", data);
    }
    /**
     * 成功,不传回数据
     * 同一函数的重载
     */
    public static Respond<Void> success() {
        return new Respond<>(0, "success", null);
    }

    /**
     * 失败,返回异常日志
     * */
    public static Respond<Void> error(String message) {
        return new Respond<>(1, message, null);
    }
}
